A filer (i.e., file server) is a computer that provides file services relating to the organization or storage of information on storage devices such as, for example, disks. The filer includes a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on the disks. Each file on a disk may be implemented as a set of data structures, e.g., disk blocks, which are configured to store information. A directory may be implemented as a formatted file in which information by other files and directories is stored.
A filer may be further configured to operate according to a client/server model of information delivery in order to allow many clients to access files stored on a server. In this model, the client may include an application, such as a database application that executes on a computer that connects to the filer over a computer network. This computer network could be, for example, a point to point link, a shared local area network (LAN), a wide area network (WAN), a virtual private network (VPN) implemented over a public network such as the Internet, or other suitable networks. Each client may request the services of the file system on the filer by issuing file system protocol messages (typically in the form of packets) to the filer over the network.
An implemented disk storage typically has one or more storage “volumes” which are a collection of physical storage disks and which define an overall logical arrangement of storage space. A storage volume can also be referred to as an “aggregate”. In other words, a storage volume is a logical container that includes a collection of disks. Therefore, the collection of disks are grouped (assimilated) into the storage volume. Each volume is generally associated with a file system. The disks within a volume/file system are typically organized as one or more groups of Redundant Array of Independent (or Inexpensive) Disks (RAID). As known to those skilled in the art, RAID implementations enhance the reliability and integrity of data storage through the redundant writing of data stripes across a given number of physical disks in the RAID group, and the appropriate caching of parity information with respect to the striped data. In the example of a WAFL (write-anywhere-file-layout) based file system and process, a RAID 4 implementation is advantageously employed. This implementation specifically entails the striping of data across a group of disks, and separate parity caching within a selected disk of the RAID 4 group. Other RAID implementations, such as e.g., RAID-DP from Network Appliance, Inc., are also advantageously employed.
Each filer will service one or more storage volumes. A filer is deemed to be an “owner” of the disks that belong in a volume that is serviced by the filer. The filer is responsible for servicing the data contained on those disks owned by the filer. Typically, only the filer that owns a particular disk should be able to write data to that disk. This solo ownership requirement helps to ensure data integrity and coherency. An ownership will change for a disk when the disk ownership changes from a first filer to another filer or device.
Currently-known approaches provide no mechanisms for protecting the ownership changes of a set of disks if a failure should occur during the ownership change procedure. The failures could be as a result of, for example, power failure in the system, takeover (i.e., failover procedure), or panic (i.e., action taken by a software, such as displaying an error message, freezing, or automatically rebooting, when a serious problem makes the software unable to run), or other types of failures that prevent the successful completion of the ownership change procedure. As a result of a failure, a subset of the disks in an aggregate may reflect a new ownership while another subset of the disks in the same aggregate would still contain the old ownership information. Therefore, a subset of disks with the new ownership will be owned by one particular filer and the other subset of disks with the old ownership information will be owned by another filer. Neither the new owner nor the old owner will be able to assimilate the disks into the aggregate (i.e., storage volume) because different ownership information are contained in the disks. Current approaches do not provide an automated method for preventing an aggregate from having disks with different owners, if failure occurs when ownership is being modified for the disks.
Therefore, the current technology is limited in its capabilities and suffers from at least the above constraints and deficiencies.